Ví dụ Hàm_ảo

Class Diagram của lớp Animal

Ví dụ, một lớp nền Animal có một hàm ảo eat. Lớp con Llama sẽ hiện thực eat() khác với lớp con Wolf, nhưng chúng ta có thể gọi eat() trên bất cứ thực thể nào của lớp Animal, và có được hành vi eat() của lớp con cụ thể.

class Animal {public: void /*non-virtual*/ move(void) {  std::cout << "This animal moves in some way" << std::endl;  } virtual void eat(void) = 0;};// The class "Animal" may possess a definition for eat() if desired.class Llama: public Animal {public: // The non virtual function move() is inherited but not overridden void eat(void) override {  std::cout << "Llamas eat grass!" << std::endl;  }};